#pragma once

#include "../../SGD Wrappers/SGD_Handle.h"
#include "../../SGD Wrappers/SGD_Color.h"
#include "../../SGD Wrappers/SGD_Geometry.h"

#include "BitmapChar.h"

#include <vector>

class BitmapFont
{
public:

	BitmapFont() = default;
	~BitmapFont() = default;

	void Initialize(char* imageName, char* fileName);
	void Terminate(void);


	void Render(const char* output, SGD::Point position,
		float scale, SGD::Color color) const;

	void Render(const wchar_t* output, SGD::Point position,
		float scale, SGD::Color color) const;

	void SetImage(SGD::HTexture img);
	SGD::HTexture GetImage();

private:
	SGD::HTexture m_hImage = SGD::INVALID_HANDLE;

	char m_cFirstChar = '\0';
	bool m_bOnlyUppercase = false;

	std::vector<BitmapChar*> vecChars;
};
